// 字符串 扩展方法
// const message = 'Error: foo is not defined.'

// console.log(
//     // message.startsWith('Erroe')
//     // startsWith 判断字符串是非以Erroe 开头
//     // message.endsWith('.')
//     // endsWith 判断字符串是非以. 结尾
//     // message.includes('foo')
//     // includes 判断字符串是否包含  foo 
// )


// 函数参数的默认值

// function foo (enable) {
//     enable = enable === undefined ? true : enable
//     console.log('foo involed - enable:')
//     console.log(enable) cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 
// }


// 默认值   *必须是参数的最后一个
// function foo (enable = true ) {
//     console.log('foo involed - enable:')
//     console.log(enable)
// }
// foo(false)


//---------------------------------------------------------

// 剩余 参数
// function foo(){
//     console.log(arguments)
// }

// function foo(...aegs){
//     console.log(aegs)
// }
// foo(1,2,3,4)


//---------------------------------------------------------


// 展开数组

// 数组参数展开
// const arr = ['foo','bar','baz']
// 最笨的办法
// console.log(
//     arr[0],
//     arr[1],
//     arr[2]
// )
// 以前
// console.log.apply(console,arr)
// es2015
// console.log(...arr)


//---------------------------------------------------------

// 箭头函数
// function inc (num) {
//     return num + 1
// }

// const inc = n => n + 1
// const inc = (n,m) => {
//     return n + 1
// }
// 箭头左边，参数列表。多个参数可用 （n，m）
// 右边，函数体。一条语句 执行结果会当函数体的返回值返回
// 需要执行多条语句 可使用 {} 并且 return 返回
// console.log(inc(100))


// const arr = [1,2,3,4,5,6,7]

// arr.filter(function (item){
//     return item % 2
// })

// arr .filter (i => i % 2)


//---------------------------------------------------------
// 箭头函数不会改变 this的指向

// const person = {
//     name: 'tom',
//     // sayHi: function () {
//     //     console.log(`hi,my name is ${this.name}`)
//     // }
//     sayHi:() =>{
//         console.log(`hi,my name is ${this.name}`)
//     },
//     sayHiAs:function(){
//         // const _this = this
//         setTimeout(function(){
//             console.log(this.name)
//         },100)
//         setTimeout(() => {
//             console.log(this.name)
//         },100)
//     }
// }

// person.sayHiAs()